package bean;



import java.io.IOException;
import java.rmi.RemoteException;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import javax.servlet.http.HttpSession;

import dao.PesrsitDAO;

import padroes.singleton.Singleton;
import pojo.Usuario;


@ManagedBean
@SessionScoped
public class LoginBean {
	private Usuario usuario = new Usuario();
	
	public LoginBean() {
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	@SuppressWarnings("unused")
	public String login() {
		PesrsitDAO dao = Singleton.getInstancia();
		System.out.println("Login:"+this.usuario.getEmail());
		Usuario u = new Usuario();
		try {
			u = (Usuario)dao.buscaPorCoringa(Usuario.class, this.usuario.getEmail());
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (u == null){
			FacesContext ctx = FacesContext.getCurrentInstance();  
			ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Usuario invalido",null));
			return "login";
		}else{
			System.out.println("caiu no else");

//			u.setEmail(this.usuario.getEmail());
//			u.setNome(this.usuario.getPassword());
			System.out.println("User " + u.getEmail() + "senha " + u.getPassword());
			
			if (u.getEmail().equals(this.usuario.getEmail()) && u.getPassword().equals(this.usuario.getPassword())) {
				HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
				session.setAttribute("usuario", u);
				System.out.println("vai pra aluno..");
				return "aluno";
	
			} else {
				FacesContext ctx = FacesContext.getCurrentInstance();  
				ctx.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR,"Senha invalida",null));
				return "index";
			}
		}
	}

	public String logout() throws IOException {
		this.usuario = new Usuario();
		HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
		session.removeAttribute("usuario");
		session.invalidate();
		return "index";
	}
	
	public void limpar(){
		usuario = new Usuario();
	}
}
